iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0
自我挑戰組

30天從零到有,帶你進入程式的世界系列 第 15

[Day 15] Git 3: HEAD 是什麼?

  • 分享至 

  • xImage
  •  

HEAD 是什麼?

  • 我們在 commit 版本時,其實是將檔案 commit 到一條 branch(分支) 上,而 head 指的就是「現在檔案的 branch 和版本

HEAD ⇒ 代表現在檔案的 branch 和版本的位置

  • 第一次 commit 後會得到第一版。這時會看到有 master、HEAD 。

https://ithelp.ithome.com.tw/upload/images/20230927/2016264818pwPkPRoZ.png

  • 再 commit 一次,會看到 master、HEAD 跑到第二個去了

https://ithelp.ithome.com.tw/upload/images/20230927/20162648eZp3U7lUrm.png

  • 如果要查看上一個版本
    1. git log 查之前 commit 的 SHA-1 編號
    2. git checkout <指定 commit SHA-1>

https://ithelp.ithome.com.tw/upload/images/20230927/20162648m76zoBEdrI.png

斷頭(detached HEAD)

HEAD 是一個「指向某一個分支的指標」, 通常指向一個分支最新的commit。
HEAD 偶爾會發生 「沒有指到某個分支」的情況,這個狀態的 HEAD 便稱之「detached HEAD」。

  1. 原本的歷史紀錄:

https://ithelp.ithome.com.tw/upload/images/20230927/20162648GGxTP8I7yc.png

  1. git checkout cd82f29 指令切換至 add cat 1 那個 Commmit
    ⇒ 這個就是斷頭狀態
    https://ithelp.ithome.com.tw/upload/images/20230927/201626487LPDKKfQlg.png

1.commit後悔 想要拆掉重做

https://ithelp.ithome.com.tw/upload/images/20230927/20162648pYb9kkyNb8.png

  • git reset HEAD^ --hard HEAD 往前1步 (hard 模式)
  • git reset HEAD~3 --hard HEAD 往前3步 (hard模式)

加上--hard是因為我們不希望拆掉的檔案變化也被記錄下來

如果單純只想把紀錄往前使用

  • git reset HEAD^ HEAD 往前1步
  • git reset HEAD~3 HEAD 往前3步

參考來源:
https://gitbook.tw/
https://ithelp.ithome.com.tw/articles/10273127


上一篇
[Day 14] Git2 : 開始使用Git
下一篇
[Day 16] Git 4: 使用分支(branch)
系列文
30天從零到有,帶你進入程式的世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言